From 82aa83b0f685f80343d2e60663d07ec51aecb688 Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Wed, 4 May 2016 12:42:40 +0200 Subject: [PATCH] revealer: emit notify::child-revealed when animation stops Depending of float rounding during target calculation, the size of the GtkRevealer can be set to zero will the animation is not finished. If the GtkRevealer is in a GtkPaned, it will be hidden and so the animation will be stopped before it is finished. In this case, force the emission of the child-revealed signal to let client code know the animation is finished. https://bugzilla.gnome.org/show_bug.cgi?id=765973 --- gtk/gtkrevealer.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gtk/gtkrevealer.c b/gtk/gtkrevealer.c index 49d9048dd2..b23f66a7e1 100644 --- a/gtk/gtkrevealer.c +++ b/gtk/gtkrevealer.c @@ -632,8 +632,11 @@ static void gtk_revealer_stop_animation (GtkRevealer *revealer) { GtkRevealerPrivate *priv = gtk_revealer_get_instance_private (revealer); - - priv->current_pos = priv->target_pos; + if (priv->current_pos != priv->target_pos) + { + priv->current_pos = priv->target_pos; + g_object_notify_by_pspec (G_OBJECT (revealer), props[PROP_CHILD_REVEALED]); + } if (priv->tick_id != 0) { gtk_widget_remove_tick_callback (GTK_WIDGET (revealer), priv->tick_id); -- 2.30.2